diff --git a/system/libraries/Model.php b/system/libraries/Model.php
index 240db43..dfb48a5 100644
--- a/system/libraries/Model.php
+++ b/system/libraries/Model.php
@@ -26,6 +26,8 @@
  */
 class Model {
 
+	var $_parent_name = '';
+
 	/**
 	 * Constructor
 	 *
@@ -33,7 +35,17 @@
 	 */
 	function Model()
 	{
-		$this->_assign_libraries();
+		// If the magic __get() method is used in a Model references can't be used.
+		$this->_assign_libraries( (method_exists($this, '__get')) ? FALSE : TRUE );
+		
+		// We don't want to assign the model object to itself when using the
+		// assign_libraries function below so we'll grab the name of the model parent
+		$methods = get_class_methods($this);
+		if (isset($methods[0]))
+		{
+			$this->_parent_name = $methods[0];
+		}
+		
 		log_message('debug', "Model Class Initialized");
 	}
 
@@ -42,17 +54,30 @@
 	 *
 	 * Creates local references to all currently instantiated objects
 	 * so that any syntax that can be legally used in a controller
-	 * can be used within models.
+	 * can be used within models.  
 	 *
 	 * @access private
 	 */	
-	function _assign_libraries()
+	function _assign_libraries($use_reference = TRUE)
 	{
-		$CI =& get_instance();	
-		
+		$CI =& get_instance();				
 		foreach (array_keys(get_object_vars($CI)) as $key)
 		{
-			$this->$key =& $CI->$key;						
+			if ( ! isset($this->$key) AND $key != $this->_parent_name)
+			{
+				// In some cases using references can cause
+				// problems so we'll conditionally use them
+				if ($use_reference == TRUE)
+				{
+					// Needed to prevent reference errors with some configurations
+					$this->$key = '';
+					$this->$key =& $CI->$key;
+				}
+				else
+				{
+					$this->$key = $CI->$key;
+				}
+			}
 		}		
 	}
 
